#include <iostream>
using namespace std;

int sudoku[10][10];

void dfs(int x,int y) {
    if( x > 4 || y > 4) {

        for(int i =1;i<=4;i++)
        {
            for(int j =1;j<=4;j++)
            {
                cout << sudoku[i][j] << " ";
            }
            cout << endl;
        }
        cout << " =========== \n" ;
        return ;
    }

    for(int i =1;i<=4;i++)
    {
        sudoku[x][y] = i;
        int ny = y+1;
        int nx = x;
        if( ny > 4) {
            nx = x+1;
            ny = 1;
        }
        dfs(nx,ny);
    }
}

int main () {
    dfs(1,1);
    return 0;
}
